package fr.afcepf.ai91.qualimetrie.data;

import fr.afcepf.ai91.qualimetrie.entity.Personne;

/**
 * Definition des methodes d'acces aux donnees
 * de l'entitee {@link Personne} dans la BDD
 * 'qualimetrie'.
 * @author Stagiaire
 *
 */
public interface IDaoPersonne {
    /**
     * Methode permettant d'ajouter une entitee
     * {@link Personne} dans la BDD 'qualimetrie'.
     * @param pers l'{@link Personne} a ajouter.
     * @return
     * <code>
     *  <ul>
     *      <li>si l'ajout a fonctionne :
     *      l'objet Personne avec sa cle
     *      primaire '{@link Personne#getId()}'
     *      renseignee</li>
     *      <li>sinon l'objet Personne avec
     *      sa cle primaire '{@link Personne#getId()}'
     *      null</li>
     *  </ul>
     * </code>
     * @throws Exception enleve une exception.
     */
    Personne ajouter(Personne pers) throws Exception;
    /**
     * Methode permettant d'associer une Adresse
     * a la Personne dans la BDD.
     * @param pers la Personne avec sa nouvelle Adresse.
     * @return <code>
     *  <ul>
     *      <li>Si association Ok : <br /> l'Adresse
     *      de la Personne est renseignee. </li>
     *      <li>Si POK : <br />
     *      l'Adresse de la personne est null.</li>
     *  </ul>
     * </code>
     */
    Personne associerAdresse(Personne pers);
}
